There is a continual drive to reduce the electrical power consumption of microcontroller based embedded systems while increasing their functional performance. Benefits of reduced electrical power consumption include, but are not restricted to:                increased operating time for battery powered systems;        reduction in component costs for power supply circuitry        improved fuel efficiency for automotive applications where the main powertrain system is used to generate power for the electrical systems (there is increasing focus on trying to achieve best possible vehicle fuel efficiency, with even the small contributions from electrical systems power supply being considered significant);        reduction in heat generated by the electrical systems allowing the use of cheaper packaging with reduced heat dissipation capabilities (a system with lower power consumption and therefore heat generation may be encased in a plastic or pressed steel enclosure rather than a more expensive die cast finned enclosure).        
Many mechanisms can be included in microcontroller devices to help achieve reductions in power consumption. Some of these mechanisms are not typically visible to a user and require no special configuration or control in user developed software. Examples of such mechanisms may be improvements in semiconductor design or manufacturing technology to reduce leakage and switching currents.
Many other mechanisms require specialization of software to achieve best power reductions. Examples of such power control mechanisms include hardware mechanisms to support special low power modes or adjustment of system parameters like voltage or frequency.
To achieve optimum power reductions with prior art mechanisms for power reduction, some software dedicated to control of the power reduction mechanisms is required. This software would have to be tightly integrated within the main application control software (for example automotive engine management software) so that it would be able to determine the application processing requirements and decide when the application could be placed in a reduced power sleep mode, or operate with reduced processing performance. Such a software control component can be developed during the development of the main application software, but causes problems for applications using a significant amount of existing “legacy” code. In some embedded applications including automotive powertrain control applications, a large amount of legacy code is used. Reasons to use unmodified legacy code include:                to minimize application development costs;        to reduce the risk of introducing errors;        to allow use of existing code which is tested but poorly documented making modifications difficult; and        to minimize the need for software re-certification        
In light of the above, the development of new power control mechanisms to allow optimum use of power reduction techniques is required to minimise (and preferably avoid altogether) the requirement for software modifications.